home *** CD-ROM | disk | FTP | other *** search
- -- background: 2398 from stack: in
- -- bmap block id: 4274
- -- flags: 4000
- -- background id: 0
- -- name: Region Cards
- ----- HyperTalk script -----
- -- On opening any of the Region Cards, do the following:
- -- Erase the bar chart, clear out previous data
- -- Retrieve from the host, the current data for this region:
- -- • sales representatives' names
- -- • sales representatives' quotas
- -- • sales representatives' sales to date
- -- Calculate % of quota achieved to date
- -- Draw the bar chart that compares the % for each rep
- -- Store the data on the Data Card for this region
-
- on RetrieveRegionData
- global ConnectedToHost
-
- if not inDebug() then
- put regionNumber (the short name of this card) into regionNum
- put "Region" && regionNum into dataCardName
- set cursor to 4
- show field "Status Backdrop"
- show field "Status"
- if ConnectedToHost is not true then
- send "ConnectToVax" to bkgnd "Region Data"
- if the result <> empty then
- wait 120 ticks
- put empty into field "Status"
- hide field "Status Backdrop"
- hide field "Status"
- exit to HyperCard
- end if
- end if
-
- send "GetDataForCard" && quote & dataCardName & quote to card dataCardName
-
- put the short date && the time into bkgnd field "Time & Date"
- DoGraph
- put false into needRegionUpdate
- end if
- end RetrieveRegionData
-
- on DoGraph
- global barMargin,barWidth,sideMargin,botMargin
- set cursor to watch
- put empty into field "Status"
- show field "Status Backdrop"
- show field "Status"
- put "Stand by… Creating the bar chart" into bkgnd field "Status"
- put regionNumber (the short name of this card) into regionNum
- put RegionalFigures(regionNum) into regionSubtotals
- put RegionalPercents(regionNum) into regionPercents
- put RegionalNames(regionNum) into regionReps
- put RegionalRepNums(regionNum) into repNums
- set lockScreen to true
-
- put barMargin into margin
- put item 4 of the rect of field "Status Backdrop" into graphStopsHere
- put the number of items in repNums into dataCount
-
- --adjust the frame
- get rect of bkgnd btn "Regional Chart"
- put item 1 of rect of bkgnd btn "Regional Sales YTD" - 10 into rLimit
- put rLimit - (barWidth * dataCount) - (sideMargin * (dataCount + 1)) into lLimit
-
- put lLimit into item 1 of it
- put rLimit into item 3 of it
- put rect of bkgnd btn "Regional Chart shadow" into temp
- put lLimit + 5 into item 1 of temp
- put rLimit + 5 into item 3 of temp
- set the rect of bkgnd btn "Regional Chart" to it
- set the rect of bkgnd btn "Regional Chart shadow" to temp
- show bkgnd btn "Regional Chart"
- show bkgnd btn "Regional Chart shadow"
- set lockscreen to false
- set lockscreen to true
-
- -- Calculate the values needed for graphing the data
- put (item 3 of it - item 1 of it) - margin into frameWidth
- put round (frameWidth / dataCount) into horizStep
- put round (horizStep * 3/4) into width
- put horizStep - width - margin into marginDiff
- if marginDiff > 1 then add round (marginDiff / 2) to margin
- put item 1 of it + margin into horiz
- put item 4 of it - margin into bottom
-
- put item 4 of it - item 2 of it - botMargin into frameHeight
- put item 4 of it - botMargin into barBottom
-
- -- Set up generic script for rep bar buttons.
- put "on mouseUp" & return & "goRepCard short name of me" & return & "end mouseUp" into btnScript
- put item 1 of rect of bkgnd btn "Regional Chart" + margin into horiz
-
- -- Make buttons. These coincide with the bars of the graph.
- choose button tool
- put empty into centersList
- add sideMargin to lLimit
- repeat with i = 1 to dataCount
- put round (item i of regionPercents * frameHeight / 100) into barHeight
- if barBottom-barHeight < graphStopsHere then adjustFrameHeight
-
- drag from 10,10 to 50,50 with commandKey -- to ensure adequate size
- set rect of card btn i to lLimit,barBottom-barHeight, lLimit+barWidth,barBottom
- set autoHilite of card btn i to true
-
- put "Rep" && item i of repNums into repCardName
- set name of card button i to repCardName
- set script of card button i to btnScript
- put (lLimit+(barWidth div 2)) & "," after centersList
- add (barWidth + sideMargin) to lLimit
- end repeat
- choose browse tool
- put empty into last char of centersList
- hideStatus
-
- --prepare to draw the bar graph
- reset paint
- set lineSize to 1
- set filled to true
- set textAlign to Center
- set textFont to Geneva
- --set textStyle to Bold
- set textSize to 9 -- This won't work w/ >5 dataItems
- put 0 into regionTotal
- set lockScreen to false
-
- --draw the bars
- repeat with i = 1 to dataCount
- set cursor to busy
- DrawSingleBar rect of card btn i
-
- put item i of regionSubtotals into dataItem
- add dataItem to regionTotal
- put addComma (dataItem) into dataItem
- choose text tool
- put item i of centersList into center
- click at center, 320
- set textStyle to Bold
- type dataItem
- click at center, 332
- set textStyle to Plain
- type item i of regionReps
- end repeat
-
- -- Make fields for the percentages
- set lockScreen to true
- repeat with i = 1 to dataCount
- set cursor to busy
- MakeField i,barBottom,item i of centersList
- set name of card field i to "Rep" && item i of repNums
- put formatPercent (item i of regionPercents) into card field i
- end repeat
- choose browse tool
- set lockScreen to false
-
- -- Calculate % of quota for the region
- put addComma (regionTotal) into field "Region Sales"
- -- The regional quota was just retrieved, so it's current
- --put field "Item Offset" into itemNum
- put word 2 of short name of this card into officeNum
- put itemOffset(officeNum,field "office_nr" of card "All Regions") into itemNum
- put item itemNum of AllRegionQuotas () into regionQuota
- put addComma (regionQuota) & " >>" into field "Region Quota"
- put deleteComma (regionQuota) into regionQuota
- put regionTotal / regionQuota * 100 into percent
-
- -- Draw the single bar chart for the regional data
- put rect of bkgnd btn "Regional Sales YTD" into graphArea
- DrawLargeBar graphArea,percent
- set lockScreen to true
- put item 3 of graphArea - item 1 of graphArea into width
- MakeField dataCount+1, item 4 of graphArea - margin, round (item 1 of graphArea + width/2 )
- put formatPercent (percent) into card field (dataCount+1)
-
- showClickMessage
- choose browse tool
- end DoGraph
-
- on UpdateOneBar repNum
- --given a rep number, redraw the bar corresponding to that
- --rep’s sales and the region combined bar
-
- --first double check that bar exists
- put empty into btnNum
- put number of card buttons into numReps
- repeat with i = 1 to numReps
- if repNum <> word 2 of the short name of card button i
- then next repeat
- put i into btnNum
- end repeat
- if btnNum is empty then
- -- put "Cannot update the chart for Rep" && repNum
- exit UpdateOneBar
- end if
-
- --start setting up for draw that single bar
- show field "Status Backdrop"
- show field "Status"
- put "Stand by… Updating the bar chart" into bkgnd field "Status"
- set cursor to 4
- set lockScreen to true
-
- put regionNumber (the short name of this card) into regionNum
- put RegionalFigures(regionNum) into regionSubtotals
- put RegionalPercents(regionNum) into regionPercents
- put RegionalNames(regionNum) into regionReps
- put RegionalRepNums(regionNum) into repNums
- --get the rep’s data
- get itemOffset(repNum,repNums)
- put item it of regionReps into myName
- put item it of regionPercents into myPercent
- put item it of regionSubtotals into mySales
- --get the region’s data
- get itemOffset(regionNum,AllRegionNums())
- put item it of AllRegionQuotas() into regionQuota
- put item it of AllRegionSales() into regionSales
- put 100*regionSales/regionQuota into regionPercent
-
- get the rect of card button btnNum
- put item 1 of it into L
- put item 2 of it into T
- put item 3 of it into R
- put item 4 of it into B
- get the rect of bkgnd btn "Regional Sales YTD"
- put item 1 of it into ML
- put item 2 of it into MT
- put item 3 of it into MR
- put item 4 of it into MB
-
- get rect of background button "Regional Chart"
- put item 2 of it into frameTop
- put item 4 of it into frameBottom
-
- reset paint
- --clear out the old bar
- choose select tool
- drag from L,T to R,B
- type NumToChar(8) --backspace to erase
- drag from ML,0 to MR,MB
- type NumToChar(8)
-
- --clear out the caption
- drag from L-4,frameBottom+7 to R+4,342
- type NumToChar(8)
- put empty into field "Region Sales"
-
- --clear out the percentage field
- put empty into card field btnNum
- put empty into card field (numReps + 1)
-
- put empty into bkgnd field "Status"
- hide bkgnd field "Status"
- hide field "Status Backdrop"
- set lockScreen to false
-
- --redraw the bars
- set lineSize to 1
- set pattern to 12
- set filled to true
- put round(B - (myPercent * (B - frameTop) / 100)) into T
- set the rect of card button btnNum to L,T,R,B
- choose rectangle tool
- drag from L,T to R,B with optionKey
- set filled to true
- doMenu "Select"
- doMenu "Opaque"
- set pattern to 22
- doMenu Fill
- wait 10
- set pattern to 14
- doMenu Fill
-
- DrawLargeBar rect of bkgnd btn "Regional Sales YTD",regionPercent
-
- --put in the caption
- choose text tool
- set textFont to Geneva
- set textSize to 9 -- This won't work w/ >5 rep’s
- set textAlign to Center
- set textStyle to Bold
- get (L + R) div 2
- click at it, 320
- type addComma(mySales)
- click at it, 332
- set textStyle to Plain
- type myName
-
- put addComma(regionSales) into field "Region Sales"
-
- --put in the percentage
- put formatPercent(myPercent) into card field btnNum
- put formatPercent(regionPercent) into card field (numReps + 1)
-
- put addComma (regionQuota) & " >>" into field "Region Quota"
- put the short date && the short time into field "Time & Date"
-
- choose browse tool
- end UpdateOneBar
-
- on MakeField i, bottom, center
- choose field tool
- show field "% Template"
- select bkgnd field "% Template"
- doMenu "Copy Field"
- hide field "% Template"
- doMenu "Paste Field"
- set the loc of card field i to center, bottom-11
- end MakeField
-
- on ClearOutCard xmax, ymin, itemCount
- set lockScreen to true
- choose select tool
- drag from 0, ymin to 512, 342
- doMenu "Clear Picture"
- drag from xmax, 342 to 512, 0
- doMenu "Clear Picture"
- choose button tool
- repeat with i = the number of card buttons down to 1
- select card btn i
- doMenu "Clear Button"
- end repeat
- choose field tool
- repeat with i = the number of card fields down to 1
- select card field i
- doMenu "Clear Field"
- end repeat
- choose browse tool
- put empty into field "Region Sales"
- hide bkgnd btn "Regional Chart"
- hide bkgnd btn "Regional Chart shadow"
- set lockScreen to false
- end ClearOutCard
-
- on goRepCard repCardName
- set cursor to 4
- lock screen
- go to card repCardName
- unlock screen with iris open
- end goRepCard
-
- on showClickMessage
- put "Click a bar below for individual data" into field "Status"
- show field "Status Backdrop"
- show field "Status"
- end showClickMessage
-
- on hideStatus
- hide field "Status"
- hide field "Status Backdrop"
- put empty into field "Status"
- end hideStatus
-
- on openCard
- global updateThisBar
- if updateThisBar is not empty then
- UpdateOneBar updateThisBar
- put empty into updateThisBar
- end if
- showClickMessage
- pass openCard
- end openCard
-
- on closeCard
- hideStatus
- end closeCard
-
-
-
- -- part 14 (button)
- -- low flags: 00
- -- high flags: 0001
- -- rect: left=0 top=0 right=98 bottom=179
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Map
- ----- HyperTalk script -----
- on mouseUp
- visual effect iris close
- go to card "Map of Regions"
- end mouseUp
-
-
-
-
- -- part 1 (field)
- -- low flags: 01
- -- high flags: 0000
- -- rect: left=14 top=97 right=116 bottom=141
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 16
- -- part name: Labels
-
-
- -- part 2 (field)
- -- low flags: 01
- -- high flags: 2002
- -- rect: left=183 top=5 right=53 bottom=391
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 20
- -- text size: 18
- -- style flags: 0
- -- line height: 20
- -- part name: Title1
- ----- HyperTalk script -----
- on mouseUp
- pass mouseUp
- end mouseUp
-
-
-
- -- part 3 (field)
- -- low flags: 01
- -- high flags: 0000
- -- rect: left=14 top=111 right=130 bottom=141
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 16
- -- part name: Region Data
-
-
- -- part 25 (button)
- -- low flags: 00
- -- high flags: 4002
- -- rect: left=87 top=206 right=306 bottom=402
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Regional Chart shadow
-
-
- -- part 4 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=410 top=317 right=339 bottom=499
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 13
- -- part name: Sales Label
-
-
- -- part 5 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=288 top=76 right=100 bottom=407
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 65535
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 15
- -- part name: Region Quota
-
-
- -- part 6 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=217 top=76 right=101 bottom=307
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 0
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 15
- -- part name: RegLabel
-
-
- -- part 26 (button)
- -- low flags: 00
- -- high flags: 4002
- -- rect: left=412 top=95 right=306 bottom=502
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Regional Sales YTD shadow
-
-
- -- part 7 (button)
- -- low flags: 00
- -- high flags: 0002
- -- rect: left=82 top=201 right=301 bottom=397
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Regional Chart
-
-
- -- part 8 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=410 top=303 right=328 bottom=499
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 15
- -- part name: Region Sales
-
-
- -- part 22 (button)
- -- low flags: 00
- -- high flags: 0002
- -- rect: left=407 top=89 right=301 bottom=497
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Regional Sales YTD
-
-
- -- part 15 (button)
- -- low flags: 00
- -- high flags: 4000
- -- rect: left=182 top=4 right=54 bottom=392
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 0
- -- text size: 12
- -- style flags: 0
- -- line height: 16
- -- part name: Map
- ----- HyperTalk script -----
- on mouseUp
- set the hilite of the target to true
- visual effect iris close
- go to card "Map of Regions"
- end mouseUp
-
-
-
-
- -- part 18 (field)
- -- low flags: 01
- -- high flags: 2004
- -- rect: left=90 top=132 right=170 bottom=398
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 12
- -- style flags: 256
- -- line height: 16
- -- part name: Status Backdrop
-
-
- -- part 19 (field)
- -- low flags: 81
- -- high flags: 2002
- -- rect: left=73 top=30 right=48 bottom=124
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 9
- -- style flags: 256
- -- line height: 12
- -- part name: % Template
- ----- HyperTalk script -----
- on mouseUp
- goRepCard short name of me
- end mouseUp
-
-
- -- part 20 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=197 top=53 right=71 bottom=400
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 0
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 13
- -- part name: Time & Date Label
-
-
- -- part 21 (field)
- -- low flags: 81
- -- high flags: 2002
- -- rect: left=19 top=30 right=48 bottom=70
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 9
- -- style flags: 256
- -- line height: 12
- -- part name: item offset
-
-
- -- part 23 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=90 top=137 right=167 bottom=397
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 12
- -- style flags: 256
- -- line height: 16
- -- part name: Status
-
-
- -- part 24 (field)
- -- low flags: 01
- -- high flags: 2000
- -- rect: left=252 top=51 right=76 bottom=387
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 0
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 15
- -- part name: Time & Date
-
-
- -- part 28 (field)
- -- low flags: 00
- -- high flags: 0000
- -- rect: left=309 top=97 right=116 bottom=394
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 16
- -- part name: Label 2
-
-
- -- part 29 (field)
- -- low flags: 00
- -- high flags: 0000
- -- rect: left=160 top=97 right=116 bottom=278
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 0
- -- line height: 16
- -- part name: Label 3
-
-
- -- part 30 (field)
- -- low flags: 01
- -- high flags: 0000
- -- rect: left=160 top=111 right=130 bottom=278
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 16
- -- part name: Region Data 3
-
-
- -- part 31 (field)
- -- low flags: 01
- -- high flags: 0000
- -- rect: left=309 top=111 right=130 bottom=394
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 256
- -- line height: 16
- -- part name: Region Data 2
-
-
- -- part 32 (button)
- -- low flags: 00
- -- high flags: 8000
- -- rect: left=0 top=80 right=95 bottom=179
- -- title width / last selected line: 0
- -- icon id / first selected line: 0 / 0
- -- text alignment: 1
- -- font id: 3
- -- text size: 10
- -- style flags: 512
- -- line height: 13
- -- part name: Return to the U. S. Map
-